Skip to main content

Shared nested objects

Item object:

FieldTypeRequiredNotes
itemAssortIdstringNoItem/product code (used as the product identifier)
itemNamestringNoItem name
itemUnitstringNoUnit name
itemQtyinteger (int32)NoQuantity * 1000, default 1000
itemAmountinteger (int64)NoFinal line amount after item discount
discountinteger (int64)NoItem-level discount amount
discountPrcnumber (double)NoItem-level discount percent
discountNamestringNoItem-level discount label
itemTaxesarray of tax objectsNoTax lines

Discount rules (for /sale and /refund items):

  • If discountPrc is provided and discount is omitted, Cashbox restores base amount from itemAmount and percent.
  • If discountPrc = 100, discount is required.
  • If both discount and discountPrc are provided, percent is used for calculation; absolute amount may be recomputed by Cashbox.
  • discountName is optional metadata.

Document-level discount rules (for /sale only):

  • discount, discountPrc, discountName apply to whole document after item-level discounts.
  • If discountPrc = 100, discount is required.
  • If both discount and discountPrc are provided, percent is used for calculation; absolute amount may be recomputed by Cashbox.
  • If discountPrc is provided without discount (and not 100%), totals may differ by rounding.

/check_copy item object (response-only):

FieldTypeRequiredNotes
itemIdstringNoStored product code
itemNamestringNoItem name
itemUnitstringNoUnit name
itemQtyinteger (int32)NoQuantity * 1000
itemPriceinteger (int64)NoUnit price before discount
itemFinalPriceinteger (int64)NoUnit price after discount
itemAmountinteger (int64)NoLine amount before discount
itemFinalAmountinteger (int64)NoFinal line amount after discount
discountinteger (int64)NoItem-level discount amount
discountPrcnumber (double)NoItem-level discount percent
currency_namestringNoCurrency

Tax object:

FieldTypeRequiredNotes
taxCodestringNoSymbolic tax code
taxPrcinteger (int32)NoPercent * 100 (1800 = 18%)

itemTaxes is schema-optional in the request format, but in practice it is required for the document to fiscalize successfully:

  • If no per-item taxes resolve (missing itemTaxes, or entries whose taxCode/taxPrc don't match a tax rate configured on the device), the sale/refund fails. An explicitly supplied unknown taxCode or taxPrc is rejected before fiscalization; there is no fallback rate.
  • If an item carries more than one independent tax at once (e.g. VAT plus a tourism levy on the same line), all of them must be listed in itemTaxes.

Always send itemTaxes explicitly for every item. There is no safe default to fall back on, and omitting it will fail the sale/refund rather than silently fiscalizing it incorrectly.

Payment split object:

FieldTypeRequiredNotes
cashAmountinteger (int64)NoDefault 0
cashlessAmountinteger (int64)NoDefault 0
creditAmountinteger (int64)NoDefault 0
bonusesAmountinteger (int64)NoDefault 0
prepaymentAmountinteger (int64)NoDefault 0
tipsinteger (int64)NoTips for a positive cashlessAmount; takes precedence over sale-level tips

Payment entry object (response-only, used by totalPayments):

FieldTypeRequiredNotes
typestringYesPayment code; code instead of type in /check_copy
amountinteger (int64)YesPaid amount
currency_namestringNoCurrency
rrnstringNoCard terminal RRN
authstringNoAuthorization code
cardNumstringNoCard number (masked)
bankNamestringNoAcquiring bank name reported by the terminal
binNamestringNoCard issuing bank resolved by the terminal from the BIN
checkNumstringNoTerminal check number
tipsinteger (int64)NoTips included in amount
settledbooleanNoOnly in a partially paid error response — see §7.14

totalPayments lists the payments in the same order they were declared in the request: the payments block first (cash, cashless, credit, bonuses, prepayment), then extraPayments in array order. Use that order to match the entries to your own payment rows.

Extra payment object:

FieldTypeRequiredNotes
codestringNoPayment code
amountinteger (int64)NoDefault 0
trxParamsobjectNoTransaction metadata

Extra payment transaction metadata object:

FieldTypeRequiredNotes
rrnstringNoTerminal reference number
cardNumberstringNoCard number (masked)
bankNamestringNoBank name
binNamestringNoCard issuing bank (by BIN)

VAT entry object:

FieldTypeRequiredNotes
vatPercentinteger (int32)YesVAT rate percent * 100
vatAmountinteger (int64)YesVAT amount
currency_namestringNoCurrency
taxCodestringNoSymbolic tax code